/**
 * Created by zackey on 2015/7/20.
 * 生成loading插件
 * @options 类型 Object
 * @options.opacity 类型（Float），作用(loading遮罩的透明度)，是否必传（否）
 * @options.state 类型（Boolean）,作用（是否取消loading遮罩），是否必传（否），默认值（false）
 * 调用说明：
 * $("#div1").loading(); //对id位div1的div启用loading遮罩
 * $("#div1").loading({state:false}); //取消对div1的loading遮罩
 */
define(function(require, exports, module) {
    require("js/lib/jquery.loading/jquery.loading.css");

    ;(function($){
        $.fn.extend({
            loading:function(options){
                $.fn.loading.defaults= {
                    state:true //是否移除
                    ,opacity:0.5
                    ,zIndex:99
                }
                var opts = $.extend({},$.fn.loading.defaults,options); //合并参数

                return this.each(function() {
                    var $loadingWrap = $(this);

                    if(!opts.state){
                        $loadingWrap.find(">.jq_loading").length && $loadingWrap.find(">.jq_loading").remove(); //关闭loading
                    }else{
                        if($loadingWrap.css("position") != "absolute"){
                            $loadingWrap.css({position:"relative"});
                        }

                        var _sHtml = '<div class="jq_loading"></div>';
                        var $loading = $(_sHtml);
                        var _oStyle = {
                            zIndex:opts.zIndex
                        };
                        //如果是ie
                        if(/(?:MSIE)/.test(navigator.userAgent)){
                            _oStyle.opacity = opts.opacity || 0.5;
                            _oStyle.filter = "alpha(opacity="+(opts.opacity*100)+")";
                        }else{
                            _oStyle.backgroundColor = "rgba(255, 255, 255, "+opts.opacity+")";
                        }

                        //如果是把loading添加在body中,就设置遮罩的宽高为浏览器窗口的宽高
                        if($loadingWrap.prop("tagName").toLowerCase() == "body"){
                            _oStyle.width = $(window).width() + "px";
                            _oStyle.height = $(window).height() + "px";
                        }

                        $loading.css(_oStyle);
                        $loadingWrap.append($loading);
                    }
                });
            }
        });
    })(jQuery);
});
